#pragma once
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;
class YourStreamer {
public:
	YourStreamer();
    ~YourStreamer();
	//!用于初始化视频推流，仅调用一次
	/*!
	\param name:推流的子地址名称，网络地址为:rtsp://YourIp:port/name
	\param size:保存分辨率，如cv::Size(1920，1080)
	\param use_h265:是否使用h265编码
	\param port:端口号，默认是8554
	\param bitrate:推流时候的码率，默认为2兆，单位是兆
	返回是否初始化成功
	*/
	bool setup(std::string name, cv::Size size, bool use_h265, std::string port = "8554", int bitrate = 2, float fps = 30);
	//!判断推流通道是否已经打开
	bool isOpened();

	//!用于推流每一帧图像，在循环中被调用
	/*!
	\param image:待推流的视频帧
	*/
	void stream(cv::Mat image);
	//!释放资源
	void release();

	std::string name;
	cv::Size size;
	std::string port;
	bool use_h265;
	int bitrate;
};